import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class TcpClient {
    // 服务端IP或域名
    private static final String SERVER_HOST = "localhost";

    // 服务端Socket 进程的端口号
    private static final int SERVER_PORT = 8888;

    public static void main(String[] args) throws IOException {
        // 3. 创建一个客户端套接字Socket， 并于对应IP的主机上，对应端口的进程建立连接
        Socket client = new Socket(SERVER_HOST, SERVER_PORT);

        // 发送TCO数据，通过socket中的输出流进行发送的
        OutputStream os = client.getOutputStream();
        // 为了方便输入字符串作为发送的内容，可以将以上字节流包装为字符流
        PrintWriter pw = new PrintWriter(new OutputStreamWriter(os, "UTF-8"));
        // 4-1 发送数据：
        pw.println("hello world");
        // 4-2 缓冲区的IO操作，真正传输数据， 需要刷新缓冲区
        pw.flush();
        // 7. 双方关闭连接： 客户端挂壁socket连接
        client.close();

    }


}
